package com.rj.ability.leqi.adapter.domain.aisino;

 import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
 import com.rj.ability.leqi.req.QdhzqrdsqReq;
 import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

import java.util.Date;

/**
 * @author YFX_RANLUBO
 * @date 2024/04/30 15:42
 **/
@Data
@AutoMapper(target = QdhzqrdsqReq.class)
public class AisinoQdhzqrdsq {
    /**
     * 列表序号	10	是
     */
    private String id;
    /**
     * 蓝字发票代码 varchar 12 否
     */
    @JsonProperty("blueLetterInvoiceCode")
    private String lzfpdm;
    /**
     * 蓝字发票号码 varchar 20 是
     */
    @JsonProperty("blueLetterInvoiceNo")
    private String lzfphm;
    /**
     * 蓝字发票开票日期datetime 是yyyyMMddHHmmss
     */
    @JsonFormat(pattern = "yyyyMMddHHmmss", timezone = "GMT+8")
    private Date issueDate;
    /**
     * aisino
     * 购买方性质	1	否	空时默认为1；
     * 1：非自然人 3自然人 当录入放身份为“我是购方”时，该值只能传1
     */
    private String buyerNature = "1";
    /**
     * 购买方名称 varchar 300 是
     */
    @JsonProperty("buyerName")
    private String gmfmc;
    /**
     * 购买方纳税人识别号varchar 20 否
     * aisino:
     * 购买方性质
     * 1非自然人： 录入放身份为“我是购方”时，必传； 当录入放身份为“我是销方”时，数电专用票必传，数电普票非必传。
     */
    @JsonProperty("buyerTaxID")
    private String gmfnsrsbh;
    /**
     * 销售方名称 varchar 300 是
     */
    @JsonProperty("sellerName")
    private String xsfmc;
    /**
     * 销售方纳税人识别号varchar 20 是
     */
    @JsonProperty("sellerTaxID")
    private String xsfnsrsbh;

    /**
     * aisino
     * 价税合计	16,2	是
     */
    private String taxInclusiveTotalAmount;
    /**
     * 红字冲销金额 number 18,2 是
     */
    @JsonProperty("taxExclusiveTotalAmount")
    private String hzcxje;
    /**
     * 红字冲销税额 number 18,2 是
     */
    @JsonProperty("taxTotalAmount")
    private String hzcxse;

    /**
     * aisino
     * 扣除额	16,2	否
     */
    private String deduction;
    /**
     * 录入方身份 varchar 2 是 0：销方 1：购方
     * aisino:
     * 1我是购方  2我是销方
     */
    @JsonProperty("applyForReason")
    private String lrfsf;
    /**
     * aisino
     * 征税类型代码	1	是	0：普通征税
     * 2：差额征税—差额开票
     * 3：差额征税—全额开票
     */
    private String taxInclusivePriceMark;

    /**
     * 蓝字发票特定要素类型代码varchar 2 否
     * 01：成品油发票02：稀土发票03：建筑服务发票
     * 04：货物运输服务发票05：不动产销售服务发票06：不动产租赁服务发票07：代收车船税08：通行费
     * 09：旅客运输服务发票10：医疗服务（住院）发票11：医疗服务（门诊）发票12：自产农产品销售发票
     * 13 拖拉机和联合收割机发票14：机动车15：二手车16：农产品收购发票17：光伏收购发票18：卷烟发票 20：农产品
     * <p>
     * aisino:
     * “00”非特定要素
     * “01”稀土发票
     * “03”建筑服务
     * “04”货物运输服务发票
     * “08”成品油
     * “09”卷烟
     * “12”医疗服务（住院）发票
     * “13”医疗服务（门诊）发票
     * “14”自产农产品销售
     * “18”旅客运输服务
     * “32”电子烟
     */
    @JsonProperty("specialInvoiceMark")
    private String lzfpTdyslxDm = "00";
    /**
     * 含税标志	1	是	N不含税，Y含税，
     * 建议均传不含税明细
     */
    private String taxMark;
    /**
     * 红字发票冲红原 varchar 2 是 01：开票有误 02：销货退回 03：服务中止04：销售折让
     * aisno:
     * 冲红原因	2	否
     * 1-销货退回；
     * 2-开票有误；
     * 3-服务中止；
     * 4-销售折让
     * 缺省2.
     */
    @JsonProperty("reason")
    private String chyyDm = "2";
    /**
     * 蓝字发票合计金额number 18,2 是
     */
    @JsonProperty("bluetaxExclusiveTotalAmount")
    private String lzhjje;
    /**
     * 蓝字发票合计税额number 18,2 是110
     */
    @JsonProperty("bluetaxTotalAmount")
    private String lzhjse;
    /**
     * 明细数据
     */
    private InvoiceProductList productList;


}
